
#pragma once

namespace dulymoo {

class IRWLock
{
public:
    virtual ~IRWLock() {}

public:
    virtual bool ReadLock() = 0;
    virtual bool TryReadLock() = 0;

    virtual bool WriteLock() = 0;
    virtual bool TryWriteLock() = 0;

    virtual void Unlock() = 0;
};

}  // namespace dulymoo

